package kn.webstd.g4g.business;

import java.util.List;

import kn.webstd.g4g.commons.dts.PerformanceIssueActionDts;
import kn.webstd.g4g.commons.dts.PerformanceParticipantsDts;
import kn.webstd.g4g.commons.dts.PerformanceReviewDts;
import kn.webstd.g4g.commons.dts.StatusDts;
import kn.webstd.g4g.commons.dts.UsersDts;
import kn.webstd.tools.business.IService;
import kn.webstd.tools.business.security.IAuthorizationManager.PermitAll;

@PermitAll
public interface IPerformanceReviewService extends IService{
	public PerformanceReviewDts getPerformanceReview(PerformanceReviewDts performance);
	public PerformanceReviewDts getPerformanceReviewByUserBUStatus(UsersDts user, StatusDts period);
	public PerformanceReviewDts savePerformanceReview(UsersDts user, PerformanceReviewDts performance, List<PerformanceParticipantsDts> participants, List<PerformanceIssueActionDts> issuesActions);
	public List<PerformanceParticipantsDts> getPerformanceParticipantsByPerformanceReview(PerformanceReviewDts performance);
	public List<PerformanceIssueActionDts> getPerformanceIssueActionDtsByPerformanceReview(PerformanceReviewDts performance);
	public PerformanceReviewDts terminatePerformanceReviewByUser(UsersDts user);
	public List<PerformanceReviewDts> createNewAgendaWithChangePeriod(StatusDts periodBefore);
}